Wednesday, December 05, 2007

Star10. ஒரு 'Chip'-இன் (உருளைக்கிழங்கு அல்ல!) கதை

நான் குப்பை கொட்டும் வன்பொருள் வடிவாக்கத் துறை சார்ந்து ஏதாவது எழுதலாம் என்று தோன்றியதால் விளைந்தது இந்தப் பதிவு! இப்பதிவு, ஒரு மின்னணு சர்குயூட் எவ்வாறு வடிவமைக்கப்பட்டு சிலிக்கன் சில்லாக (CHIP) உருவெடுக்கிறது என்பதை எளிமையாக விவரிக்க ஒரு முயற்சி!

Integrated circuit-ஐ (IC) உள்ளடக்கிய சிலிக்கன் சில்லுகள் வன்பொருள் (Hardware) வகையைச் சார்ந்தவை. ஆனால், இவற்றை வடிவமைக்கக் (design) கூட மென்பொருளின் (software) துணை தேவைப்படுகிறது! இந்த சிலிக்கன் சில்லுகள் நாம் தினசரி வாழ்வில் கையாளும் பல மின்னணு சாதனங்களில் உயிராக இயங்குகின்றன. உதாரணம்: தொலைக்காட்சி, கணினி, டிவிடி, வானொலி, கைத்தொலைபேசி, ஐபாட் etc.... பாக்கெட் வானொலியிலிருந்து ராக்கெட் இயக்கம் வரை, சிலிக்கன் சில்லின் ஆதிக்கம் விரவி இருக்கிறது! வன்பொருளை வடிவமைக்க உதவும் மென்பொருட்கருவிகளை EDA (Electronic design automation) tools என்றழைக்கிறோம்.

சிலிக்கன் சில் என்ற வன்பொருளில் உள்ள மின்னணு சர்குயூட் என்பது ஆயிரம் / லட்சம் / கோடி டிரான்ஸிஸ்டர்கள் (transistor) என்ற நுண்பொருட்களால் ஆனது. டிரான்ஸிஸ்டர் என்பதே ஒரு மின்னணு சர்குயூட்டை உருவாக்கத் தேவையான அடிப்படை building block என்று கூறலாம். டிரான்ஸிஸ்டருக்கு இரண்டு நிலைகள் உண்டு, மின்னணு கடத்தும் / கடத்தா நிலைகள். இவற்றை பூலியன் கணக்கில் (Boolean Algebra), மின்னணு கடத்தும் நிலையை 1 என்றும், கடத்தா நிலையை 0 என்றும் கூறுகிறோம். பூஜ்யமும் இல்லாத, ஒன்றும் இல்லாத ஒரு நிலையைப் (tristate) பற்றிக் கூறி, வாசிக்கும் மென்பொருளாளர்களை அதிகம் குழப்ப எண்ணமில்லை :)

டிரான்ஸிஸ்டர்கள் கொண்டு, குறிப்பிட்ட வன்பொருள் செயலாக்கம் (hardware functionality) உடைய கேட்'களை (gates) வடிவமைக்கலாம். இவற்றில் முக்கியமானவை, AND, OR, NOR, NAND எனப்படுபவை. உதாரணத்துக்கு, இரண்டு உள்ளீட்டுக் கணுக்கணும் (input nodes X,Y) ஒரு வெளியீட்டுக் கணுவும் (output node F) கொண்ட ஒரு AND மற்றும் OR கேட்'டின் ஸிம்பலையும், செயலாக்கத்தை விளக்கும் Truth Table-ஐயும் படத்தில் காணலாம். AND-இன் எதிர்மறை NAND, அது போலவே எதிர்மறையானவை OR-உம் NOR-உம். இரண்டுக்கும் மேற்பட்ட உள்ளீட்டுக் கணுக்கள் கொண்ட கேட்'களையும் உருவாக்க முடியும்.



ஒரு கேட்'டின் Truth Table என்பது உள்ளீடுகளின் வேறுபட்ட நிலைகளில், வெளியீட்டு நிலையை (0 அல்லது 1) சொல்கிறது. அது போலவே, பல உள்ளீடுகளும், வெளியீடுகளும் கொண்ட, பல கேட்'களால் ஆன ஒரு மின்னணு சர்குயூட் செயலாக்கத்தையே, ஒரு Truth Table வாயிலாக (பூலியன் வடிவில்) விவரிக்க முடியும்.

பெரும்பாலான மின்னணு சர்குயூட்கள் 'கிளாக்' (Clock, சுருக்கமாக CLK) என்ற உள்ளீட்டின் நேர வரையரைப்படி இயங்குகின்றன. ஒரே சீராக 0 நிலைக்கும் 1 நிலைக்கும் மாறி மாறி இடம் பெயரும் உள்ளீடு (input) கிளாக் என்றழைக்கப்படுகிறது. கிளாக்கை உள்ளீடாகப் பெற்றுச் செயல்படும் (சில கேட்'களால் ஆன) நுண்பொருளை FLIPFLOP என்கிறோம். மின்னணு சர்குயூட்கள் பொதுவாக பல உள்ளீடுகளும் வெளியீடுகளும் கொண்டவை. அவற்றின் செயலாக்கத்தை (அதாவது, கிளாக் வாயிலாக நிறுவப்பட்ட ஒரு குறிப்பிட்ட கணத்தில், உள்ளீடுகளின் நிலையைப் (0,1) பொருத்து வெளியீடுகளின் நிலை எவ்விதம் அமைய வேண்டும்) சரி பார்த்துக் கொள்ள அலைபடங்கள் (Waveform diagrams) உதவுகின்றன. கீழே உள்ள படத்தில் காண்க.



வன்பொருள் சர்குயூட் வடிவமைப்பு என்பதும், தற்சமயம், பொட்டி தட்டும் (code அடிக்கும்) வேலை தான்! இதற்கென்று பிரத்யேகமான வன்பொருள் வடிவாக்க மொழிகள் (Hardware Description Languages) உள்ளன. பொதுவாக, வெரிலாக் (verilog) மற்றும் VHDL என்ற இரண்டு மொழிகளே பயன்படுத்தப்படுகின்றன. இம்மொழிகளின் ஆணைகளைக் கொண்டு, பலவகை கேட்'களும், flipflop-களும் கொண்டு உருவாக்கப்பட வேண்டிய ஒரு வன்பொருள் செயலாக்கத்தை (hardware functionality), code வடிவில் எழுத/விளக்க முடிகிறது.

15 ஆண்டுகளுக்கு முன், இந்த மொழி வசதி இல்லை. அப்போதெல்லாம், ஒரு சர்குயூட்டை உருவாக்க, CAD கருவிகளின் துணை கொண்டு, கணினி திரையில் வன்பொருள் செயலாக்கத்தை ஒரு சர்குயூட் படமாக வரைய வேண்டிய சூழல் நிலவியது. இம்மொழிகள் வந்த பிறகு, மின்னணு சர்குயூட் வடிவாக்கப் பணியும் எளிதாகி, நிறைய நேரமும் மிச்சப்படுகிறது. அதோடு, மிகப்பெரிய (கோடிக்கணக்கான கேட்'களால் ஆன), கடினமான (complex) வன்பொருள் செயலாக்கத்தை, ஒரு வடிவாக்க அணியிடம் (Design Team), பல கூறுகளாகப் பிரித்து தர ஏதுவாகிறது. இறுதியில், அக்கூறுகளை ஒருங்கிணைப்பதன் மூலம், பெரியதொரு வன்பொருள் செயலாக்கத்தின் Top Level Code உருவாகிறது. ஒரு Sample code கீழே!



இப்படித் தயாரான குறியை (code) சிமுலேட்டர் (Simulator) என்ற EDA கருவி கொண்டு, நமக்குத் தேவையான வன்பொருள் செயலாக்கத்தோடு (மேலே குறிப்பிட்ட அலைபடங்கள் துணையோடு) சரி பார்க்க (validate) முடிகிறது. செயலாக்கத்தில் குறை/தவறு இருப்பின், மென்பொருளாளர்கள் செய்வது போலவே, குறியை debug செய்து மாற்றுகிறோம் !

அடுத்த கட்டம் தான் முக்கியமானது. ஸின்தஸைஸர் (Synthesizer) என்ற EDA கருவி தான், சிமுலேட்டர் மூலம் சரிபார்க்கப்பட்ட குறியை, வன்பொருள் சர்குயூட்டாக மாற்றுகிறது. அதை உருவாக்க, ஸின்தஸைஸர் கருவிக்கு, பலவகை கேட்'கள் பற்றிய விவரங்கள் அடங்கிய 'வன்பொருள் நூலகங்கள்' (Hardware Libraries), தேவைப்படுகின்றன. அந்த சர்குயூட்டை கணினித் திரையிலும் பார்க்க முடிகிறது. அதாவது, நாமே சர்குயூட் வரைந்து மெனக்கட வேண்டிய காலமெல்லாம் எப்போதோ மலையேறி விட்டது !

ஸின்தஸைஸர் கருவியின் வெளியீடு (output) மற்றொரு EDA கருவியான Place and Router-க்கு உள்ளீடாக(input) வழங்கப்பட்டு, இறுதியில், மின்னணு சர்குயூட்டின் வன்பொருள் செயலாக்கமானது, ஒரு சிலிக்கன் சில்லில் பதியப்பட வேண்டிய ஒரு வகை ஜியாமெட்ரிக் விவரங்கள் (அதாவது, சிலிக்கன் சில்லுக்குள் சர்குயூட்டின் ஒவ்வொரு கேட்'டும் (gate) அமைய வேண்டிய இடம் (co-ordinates) மற்றும் அதற்கும் மற்ற கேட்'களுக்கும் உள்ள இணைப்புகள் போன்ற தகவல்கள்) அடங்கிய கோப்பாக, சிலிக்கன் சில்லை தயாரிக்கும் (chip fabrication) நிறுவனத்திற்கு (Foundry) தரப்படுகிறது. கீழே உள்ள படத்தில் காண்பது போன்ற சிலிக்கன் சில்லுகள் உருவாகின்றன.


Place and Route கருவி மற்றும் Foundry குறித்து, அதிக டெக்னிகலான விவரங்களை தவிர்த்து விடுகிறேன்! இதற்கு மேல் உங்களை 'அறுத்தால்' அடி விழும் என்ற பயம் தான் :)
ஒரு 'சிப்'பின் கதையை இதை விட எளிமையாக என்னால் கூற முடியாது, சுபம் :)

என்றென்றும் அன்புடன்
பாலா

20 மறுமொழிகள்:

enRenRum-anbudan.BALA said...

MUST READ :)

புரட்சி தமிழன் said...

உன்மையில் நல்ல பதிவு எலக்ரானிக் துறையை சேர்ந்தவர்கள் நல்ல பயன் பெறுவர் எலக்ற்றானிக் துறையை சேராதவ்ர்களுக்கு என்னவென்றே புரியாது
உங்கள் சேவை அனைவருக்கும் தேவை

குசும்பன் said...

நன்றாக விளக்கமாக சொல்லி இருக்கீங்க, நல்ல பதிவு. AND OR கேட் பத்தி எல்லாம் விளக்கமாக சொல்லி இருக்கீங்க. திரும்ப ஸ்கூல் புக் படித்த ஒரு உணர்வு:)

வடுவூர் குமார் said...

போன வருடம் உங்களிடம் கேட்டிருந்தேன்,இப்போது போட்டுவிட்டீர்கள்,மிக்க நன்றி.
பல எனக்கு புரியவில்லை.
ஒரு சந்தேகம்..
அந்த சிப்பின் மேல் உள்ள எண்களை வைத்து அதன் நினைவக கொள்ளலவை அறிய முடியுமா?
பழைய கிராபிக் கார்டில் அது எத்தனை மெமரி என்பது எழுதியிருக்காது அதை இம்முறையில் கண்டுபிடிக்க முடியுமா? என்று பார்க்கிறேன்.
இன்னும் அந்த எட்சிங் முறையை பற்றி சொல்லியிருக்கலாம்.

Cheyyar Thamizh said...

Hello Bala,
I have visited your blogspot for the first time. Enjoyed reading quite a few of your blog posts, esp Chip. Glad to know that you are a GCTian. I am also a GCTian, of 1977class of BE (ECE).

I am working in Bangalore as a Manager in a MNC. We can exchange mails if you please.

enRenRum-anbudan.BALA said...

புரட்ச்சி தமிழன், குசும்பன்,

varavukkum paaraattukkum mikka nanRi!

enRenRum anbudan
BALA

enRenRum-anbudan.BALA said...

Mannan,
Thanks for your appreciation !

My mail ID is available in my blog profile. Pl. write to me, if you please.

வடுவூர் குமார்,
இந்த பதிவு இடுவதற்கு நீங்கள் தான் ஊக்கம் தந்தது :)

//ஒரு சந்தேகம்..
அந்த சிப்பின் மேல் உள்ள எண்களை வைத்து அதன் நினைவக கொள்ளலவை அறிய முடியுமா?
பழைய கிராபிக் கார்டில் அது எத்தனை மெமரி என்பது எழுதியிருக்காது அதை இம்முறையில் கண்டுபிடிக்க முடியுமா? என்று பார்க்கிறேன்.
இன்னும் அந்த எட்சிங் முறையை பற்றி சொல்லியிருக்கலாம்.
//
நீங்கள் சொல்வது மெமரி (memory) சிப்களுக்கு பொருந்தலாம், ASIC (Application
Specific Integrated Circuits) வகைக்கு பொருந்தாது.

எட்சிங் முறை பற்றியெல்லாம் பேசினால், பதிவு ரொம்ப டெக்னிகலாக ஆகி விடும்
அபாயம்(!) உள்ளது !

எ.அ.பாலா

Silver Prince said...

நல்ல பதிவு.....
ஆனால் "chip-ன் கதையை" மிக சுருக்கமாக முடித்துவிட்டீர்கள்....
மின்னனுவியல் துறை சம்பந்தப்பட்ட பதிவுகள் நிறைய எழுதுங்கள்....

இராம்/Raam said...

ஆஹா AND OR Gate'ன்னு எங்க வீடு south gate'லே சார்'ன்னு லந்து பண்ண ஸ்கூல் சேட்டைய ஞாபகப்படுத்திட்டிங்க.. :)

enRenRum-anbudan.BALA said...

நாமக்கல்காரன் (ஜாவா), இராம்/Raam,

Thanks !

enRenRum-anbudan.BALA said...

//ஆனால் "chip-ன் கதையை" மிக சுருக்கமாக முடித்துவிட்டீர்கள்....
மின்னனுவியல் துறை சம்பந்தப்பட்ட பதிவுகள் நிறைய எழுதுங்கள்....
//
Yes, Sir :)

//ஆஹா AND OR Gate'ன்னு எங்க வீடு south gate'லே சார்'ன்னு லந்து பண்ண ஸ்கூல் சேட்டைய ஞாபகப்படுத்திட்டிங்க.. :)
//
:)))))))))))

said...

viLakkamAna teknikal pathivu ...

கருப்பன் (A) Sundar said...

அட நான்கூட இதேதுறையில் தான் குப்பை கொட்டிக்கொண்டிருக்கிறேன் (SoC -க்களை IPs களைக்கொண்டு உருவாக்கும் வேலை)... Chip-களைப் பற்றி இவ்வளவு அழகாக தமிழில் எழுத இயலும் என்று நான் நினைத்துக்கூட பார்க்கவில்லை.

enRenRum-anbudan.BALA said...

Karuppan,

ஒரு வழியாக என் துறையிலேயே பணி புரியும் ஒருவர் இந்தப் பதிவை வாசித்து விட்டார் என்பது மகிழ்ச்சியைத் தருகிறது :) தங்கள் பாராட்டுக்கு நன்றி.

SoC-க்களை வடிவமைக்கவென (நான் கூறியது தவிர்த்து இன்னும் சில) கருவிகள் உள்ளன அல்லவா ?

எ.அ.பாலா

கருப்பன் (A) Sundar said...

சரியாக கூறினீர்கள் இந்த toolகளை நிர்வாகிப்பதற்க்காக எங்களிடம் ஒரு தனி குழு உள்ளது!

குமரன் (Kumaran) said...

சுருக்கமா எளிதா மென்பொருள் துறையில் துரைத்தனம் பண்ணுபவர்களுக்கு அடியாளாக இருக்கும் எனக்கும் புரியும் படி சொன்னதற்கு மிக்க நன்றி சீனியர். :-)

enRenRum-anbudan.BALA said...

குமரன்,
ஏதோ என்னால் இயன்ற, தமிழில், தொழில்நுட்பத் தொண்டு :) நன்றி.

கருப்பன்,
மீள்வருகைக்கு நன்றி.

enRenRum-anbudan.BALA said...

குமரன்,
ஏதோ என்னால் இயன்ற, தமிழில், தொழில்நுட்பத் தொண்டு :) நன்றி.

கருப்பன்,
மீள்வருகைக்கு நன்றி.

+Ve அந்தோணி முத்து said...

பாலா அண்ணா,
மிக மிக அருமையான பதிவு அண்ணா.

15 வருடம் முன்பு நான் ரேடியொ, T.V,
ரிப்பேரிங் செய்து வந்த போது தமிழில் Science Articles தேடித் தேடிப் படித்திருக்கிறேன்.

அப்போது அமரர் "வ.அருணாசலம்," என்ற ஒரு எழுத்தாளரின் புத்தகங்கள்,
படிக்க மிக எளிமையாகவும், சுவாரசியமாகவும் இருக்கும்.

அவருடைய,
"செமி-கண்டக்டர் ஐ. சி" புத்தகத்தில் இந்த And-Nand, Or-Nor, கேட்டுகளை கணவன் மனைவி சண்டையுடன் ஒப்பிட்டு விளக்கியிருப்பார்.

சிறுவனுக்குக் கூட விளங்கும் வகையில் இருக்கும் அவர் எழுத்து.

உங்களின் இந்தப் பதிவும், அதேபோல ஏன் அதைவிட ஒருபடி மேலாக சுஜாதாவின் விஞ்ஞானக் கட்டுரை போலத் தோன்றியது.

எழுத்துக்கு உங்களின் மானசீக குரு சுஜாதா-தான் என்பதை நிரூபிக்க இந்த ஒரு பதிவு போதும்.

இங்கே எனக்கு மிகவும் பிடித்த Quantum Physics குறித்த பதிவிட்டிருக்கிறார்க?ள். படித்துப் பாருங்கள் அண்ணா.

பிச்சைப்பாத்திரம் said...

சாமி நெறைய படிப்பு படிச்சிருக்குது போல. இங்கிலீசுலாம் பேசுது. ஒண்ணும் புரியாட்டியும் நல்லா இருக்குது சாமி. :-)

நன்றி நண்பரே !

வருகை தந்தமைக்கு நன்றி! உங்கள் மேலான கருத்துக்களை எதிர்பார்க்கிறேன்!
Related Posts with Thumbnails